package productorconsumidor2;

public class Mesa {

    private Producto elProducto = null;
    private Object monitorProductor = new Object();
    private Object monitorConsumidor = new Object();

    Producto coger() {
        Producto temporal = null;
        synchronized (monitorConsumidor) {
            while (elProducto == null) {
                try {
                    monitorConsumidor.wait();
                } catch (Exception ex) {
                }
            }
            temporal = elProducto;
            elProducto = null;
            System.out.println("Cogiendo de mesa: " + temporal);
        }
        synchronized (monitorProductor) {
            monitorProductor.notify();
        }
        return temporal;
    }

    void dejar(Producto p) {
        synchronized (monitorProductor) {
            while (elProducto != null) {
                try {
                    monitorProductor.wait();
                } catch (Exception ex) {
                }
            }
            elProducto = p;
            System.out.println("Dejado en mesa: " + p);
        }

        synchronized(monitorConsumidor){
            monitorConsumidor.notify();
        }       
    }
}
